class Solution {
public:
    int maxSum(vector<int>& nums) {
        unordered_set<int> st;
        int ans = 0;
        int max_fu = -0x3f3f3f3f;
        for (auto& x : nums) {
            if (x > 0 && !st.count(x)) {
                ans += x;
                st.insert(x);
            }
            else if (ans == 0) {
                max_fu = max(max_fu, x);
            }
        }
        return ans == 0 ? max_fu : ans;
    }
};